From 4c1f84b205a043d8533742761e6466962ce399b9 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Fri, 7 Oct 2016 11:07:37 -0700 Subject: [PATCH] Revert addition of a number of Config params --- src/cargo/core/package.rs | 4 +-- src/cargo/core/registry.rs | 10 +++--- src/cargo/core/resolver/mod.rs | 39 ++++++++++------------- src/cargo/core/source.rs | 6 ++-- src/cargo/ops/cargo_clean.rs | 2 +- src/cargo/ops/cargo_compile.rs | 2 +- src/cargo/ops/cargo_fetch.rs | 2 +- src/cargo/ops/cargo_install.rs | 4 +-- src/cargo/ops/cargo_output_metadata.rs | 2 +- src/cargo/ops/cargo_rustc/context.rs | 29 ++++++++--------- src/cargo/ops/cargo_rustc/custom_build.rs | 2 +- src/cargo/ops/cargo_rustc/fingerprint.rs | 2 +- src/cargo/ops/cargo_rustc/job_queue.rs | 4 +-- src/cargo/ops/cargo_rustc/mod.rs | 6 ++-- src/cargo/ops/resolve.rs | 2 +- src/cargo/sources/directory.rs | 4 +-- src/cargo/sources/git/source.rs | 8 ++--- src/cargo/sources/path.rs | 6 ++-- src/cargo/sources/registry/index.rs | 27 ++++++++-------- src/cargo/sources/registry/mod.rs | 12 +++---- src/cargo/sources/replaced.rs | 10 +++--- tests/resolve.rs | 4 +-- 22 files changed, 88 insertions(+), 99 deletions(-) diff --git a/src/cargo/core/package.rs b/src/cargo/core/package.rs index 0235b6192..da14b04fc 100644 --- a/src/cargo/core/package.rs +++ b/src/cargo/core/package.rs @@ -156,7 +156,7 @@ impl<'cfg> PackageSet<'cfg> { Box::new(self.packages.iter().map(|&(ref p, _)| p)) } - pub fn get(&self, id: &PackageId, config: &Config) -> CargoResult<&Package> { + pub fn get(&self, id: &PackageId) -> CargoResult<&Package> { let slot = try!(self.packages.iter().find(|p| p.0 == *id).chain_error(|| { internal(format!("couldn't find `{}` in package set", id)) })); @@ -168,7 +168,7 @@ impl<'cfg> PackageSet<'cfg> { let source = try!(sources.get_mut(id.source_id()).chain_error(|| { internal(format!("couldn't find source for `{}`", id)) })); - let pkg = try!(source.download(id, config).chain_error(|| { + let pkg = try!(source.download(id).chain_error(|| { human("unable to get packages from source") })); assert!(slot.fill(pkg).is_ok()); diff --git a/src/cargo/core/registry.rs b/src/cargo/core/registry.rs index 5aa11abfd..bea9e6a10 100644 --- a/src/cargo/core/registry.rs +++ b/src/cargo/core/registry.rs @@ -10,7 +10,7 @@ use sources::config::SourceConfigMap; /// See also `core::Source`. pub trait Registry { /// Attempt to find the packages that match a dependency request. - fn query(&mut self, name: &Dependency, config: &Config) -> CargoResult>; + fn query(&mut self, name: &Dependency) -> CargoResult>; /// Returns whether or not this registry will return summaries with /// checksums listed. @@ -22,22 +22,22 @@ pub trait Registry { } impl Registry for Vec { - fn query(&mut self, dep: &Dependency, _config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { Ok(self.iter().filter(|summary| dep.matches(*summary)) .cloned().collect()) } } impl Registry for Vec { - fn query(&mut self, dep: &Dependency, _config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { Ok(self.iter().filter(|pkg| dep.matches(pkg.summary())) .map(|pkg| pkg.summary().clone()).collect()) } } impl<'a, T: ?Sized + Registry + 'a> Registry for Box { - fn query(&mut self, name: &Dependency, config: &Config) -> CargoResult> { - (**self).query(name, config) + fn query(&mut self, name: &Dependency) -> CargoResult> { + (**self).query(name) } } diff --git a/src/cargo/core/resolver/mod.rs b/src/cargo/core/resolver/mod.rs index ed57a1a9b..7a9e95336 100644 --- a/src/cargo/core/resolver/mod.rs +++ b/src/cargo/core/resolver/mod.rs @@ -55,7 +55,7 @@ use semver; use core::{PackageId, Registry, SourceId, Summary, Dependency}; use core::PackageIdSpec; -use util::{CargoResult, Graph, human, CargoError, Config}; +use util::{CargoResult, Graph, human, CargoError}; use util::profile; use util::ChainError; use util::graph::{Nodes, Edges}; @@ -265,8 +265,7 @@ struct Context<'a> { /// Builds the list of all packages required to build the first argument. pub fn resolve(summaries: &[(Summary, Method)], replacements: &[(PackageIdSpec, Dependency)], - registry: &mut Registry, - config: &Config) -> CargoResult { + registry: &mut Registry) -> CargoResult { let cx = Context { resolve_graph: Graph::new(), resolve_features: HashMap::new(), @@ -275,7 +274,7 @@ pub fn resolve(summaries: &[(Summary, Method)], replacements: replacements, }; let _p = profile::start(format!("resolving")); - let cx = try!(activate_deps_loop(cx, registry, summaries, config)); + let cx = try!(activate_deps_loop(cx, registry, summaries)); let mut resolve = Resolve { graph: cx.resolve_graph, @@ -306,8 +305,7 @@ fn activate(cx: &mut Context, registry: &mut Registry, parent: Option<&Rc>, candidate: Candidate, - method: &Method, - config: &Config) + method: &Method) -> CargoResult> { if let Some(parent) = parent { cx.resolve_graph.link(parent.package_id().clone(), @@ -335,7 +333,7 @@ fn activate(cx: &mut Context, } }; - let deps = try!(cx.build_deps(registry, &candidate, method, config)); + let deps = try!(cx.build_deps(registry, &candidate, method)); Ok(Some(DepsFrame { parent: candidate, @@ -437,8 +435,7 @@ struct BacktrackFrame<'a> { /// dependency graph, cx.resolve is returned. fn activate_deps_loop<'a>(mut cx: Context<'a>, registry: &mut Registry, - summaries: &[(Summary, Method)], - config: &Config) + summaries: &[(Summary, Method)]) -> CargoResult> { // Note that a `BinaryHeap` is used for the remaining dependencies that need // activation. This heap is sorted such that the "largest value" is the most @@ -454,7 +451,7 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>, let summary = Rc::new(summary.clone()); let candidate = Candidate { summary: summary, replace: None }; remaining_deps.extend(try!(activate(&mut cx, registry, None, candidate, - method, config))); + method))); } // Main resolution loop, this is the workhorse of the resolution algorithm. @@ -548,8 +545,7 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>, None => return Err(activation_error(&cx, registry, &parent, &dep, &cx.prev_active(&dep), - &candidates, - config)), + &candidates)), Some(candidate) => candidate, } } @@ -563,7 +559,7 @@ fn activate_deps_loop<'a>(mut cx: Context<'a>, trace!("{}[{}]>{} trying {}", parent.name(), cur, dep.name(), candidate.summary.version()); remaining_deps.extend(try!(activate(&mut cx, registry, Some(&parent), - candidate, &method, config))); + candidate, &method))); } Ok(cx) @@ -599,8 +595,7 @@ fn activation_error(cx: &Context, parent: &Summary, dep: &Dependency, prev_active: &[Rc], - candidates: &[Candidate], - config: &Config) -> Box { + candidates: &[Candidate]) -> Box { if candidates.len() > 0 { let mut msg = format!("failed to select a version for `{}` \ (required by `{}`):\n\ @@ -653,7 +648,7 @@ fn activation_error(cx: &Context, let mut msg = msg; let all_req = semver::VersionReq::parse("*").unwrap(); let new_dep = dep.clone_inner().set_version_req(all_req).into_dependency(); - let mut candidates = match registry.query(&new_dep, config) { + let mut candidates = match registry.query(&new_dep) { Ok(candidates) => candidates, Err(e) => return e, }; @@ -821,8 +816,7 @@ impl<'a> Context<'a> { fn build_deps(&mut self, registry: &mut Registry, candidate: &Summary, - method: &Method, - config: &Config) -> CargoResult> { + method: &Method) -> CargoResult> { // First, figure out our set of dependencies based on the requsted set // of features. This also calculates what features we're going to enable // for our own dependencies. @@ -831,7 +825,7 @@ impl<'a> Context<'a> { // Next, transform all dependencies into a list of possible candidates // which can satisfy that dependency. let mut deps = try!(deps.into_iter().map(|(dep, features)| { - let mut candidates = try!(self.query(registry, &dep, config)); + let mut candidates = try!(self.query(registry, &dep)); // When we attempt versions for a package, we'll want to start at // the maximum version and work our way down. candidates.sort_by(|a, b| { @@ -857,9 +851,8 @@ impl<'a> Context<'a> { /// return. fn query(&self, registry: &mut Registry, - dep: &Dependency, - config: &Config) -> CargoResult> { - let summaries = try!(registry.query(dep, config)); + dep: &Dependency) -> CargoResult> { + let summaries = try!(registry.query(dep)); summaries.into_iter().map(Rc::new).map(|summary| { // get around lack of non-lexical lifetimes let summary2 = summary.clone(); @@ -872,7 +865,7 @@ impl<'a> Context<'a> { Some(replacement) => replacement, }; - let mut summaries = try!(registry.query(dep, config)).into_iter(); + let mut summaries = try!(registry.query(dep)).into_iter(); let s = try!(summaries.next().chain_error(|| { human(format!("no matching package for override `{}` found\n\ location searched: {}\n\ diff --git a/src/cargo/core/source.rs b/src/cargo/core/source.rs index b09d57ef9..4a46c1929 100644 --- a/src/cargo/core/source.rs +++ b/src/cargo/core/source.rs @@ -27,7 +27,7 @@ pub trait Source: Registry { /// The download method fetches the full package for each name and /// version specified. - fn download(&mut self, package: &PackageId, config: &Config) -> CargoResult; + fn download(&mut self, package: &PackageId) -> CargoResult; /// Generates a unique string which represents the fingerprint of the /// current state of the source. @@ -57,8 +57,8 @@ impl<'a, T: Source + ?Sized + 'a> Source for Box { (**self).update() } - fn download(&mut self, id: &PackageId, config: &Config) -> CargoResult { - (**self).download(id, config) + fn download(&mut self, id: &PackageId) -> CargoResult { + (**self).download(id) } fn fingerprint(&self, pkg: &Package) -> CargoResult { diff --git a/src/cargo/ops/cargo_clean.rs b/src/cargo/ops/cargo_clean.rs index c5a32e1d6..e19b37f11 100644 --- a/src/cargo/ops/cargo_clean.rs +++ b/src/cargo/ops/cargo_clean.rs @@ -47,7 +47,7 @@ pub fn clean(ws: &Workspace, opts: &CleanOptions) -> CargoResult<()> { for spec in opts.spec { // Translate the spec to a Package let pkgid = try!(resolve.query(spec)); - let pkg = try!(packages.get(&pkgid, ws.config())); + let pkg = try!(packages.get(&pkgid)); // Generate all relevant `Unit` targets for this package for target in pkg.targets() { diff --git a/src/cargo/ops/cargo_compile.rs b/src/cargo/ops/cargo_compile.rs index 44ea51afd..0767e9e46 100644 --- a/src/cargo/ops/cargo_compile.rs +++ b/src/cargo/ops/cargo_compile.rs @@ -190,7 +190,7 @@ pub fn compile_ws<'a>(ws: &Workspace<'a>, }; let to_builds = try!(pkgids.iter().map(|id| { - packages.get(id, config) + packages.get(id) }).collect::>>()); let mut general_targets = Vec::new(); diff --git a/src/cargo/ops/cargo_fetch.rs b/src/cargo/ops/cargo_fetch.rs index 43cd5c109..a0144c8f4 100644 --- a/src/cargo/ops/cargo_fetch.rs +++ b/src/cargo/ops/cargo_fetch.rs @@ -9,7 +9,7 @@ pub fn fetch<'a>(ws: &Workspace<'a>) -> CargoResult<(Resolve, PackageSet<'a>)> { let resolve = try!(ops::resolve_ws(&mut registry, ws)); let packages = get_resolved_packages(&resolve, registry); for id in resolve.iter() { - try!(packages.get(id, ws.config())); + try!(packages.get(id)); } Ok((resolve, packages)) } diff --git a/src/cargo/ops/cargo_install.rs b/src/cargo/ops/cargo_install.rs index 91d44a4d4..59d16e272 100644 --- a/src/cargo/ops/cargo_install.rs +++ b/src/cargo/ops/cargo_install.rs @@ -260,10 +260,10 @@ fn select_pkg<'a, T>(mut source: T, match name { Some(name) => { let dep = try!(Dependency::parse(name, vers, source_id, config)); - let deps = try!(source.query(&dep, config)); + let deps = try!(source.query(&dep)); match deps.iter().map(|p| p.package_id()).max() { Some(pkgid) => { - let pkg = try!(source.download(pkgid, config)); + let pkg = try!(source.download(pkgid)); Ok((pkg, Box::new(source))) } None => { diff --git a/src/cargo/ops/cargo_output_metadata.rs b/src/cargo/ops/cargo_output_metadata.rs index 488fa9853..131b93825 100644 --- a/src/cargo/ops/cargo_output_metadata.rs +++ b/src/cargo/ops/cargo_output_metadata.rs @@ -52,7 +52,7 @@ fn metadata_full(ws: &Workspace, let (packages, resolve) = deps; let packages = try!(packages.package_ids() - .map(|i| packages.get(i, ws.config()).map(|p| p.clone())) + .map(|i| packages.get(i).map(|p| p.clone())) .collect()); Ok(ExportInfo { diff --git a/src/cargo/ops/cargo_rustc/context.rs b/src/cargo/ops/cargo_rustc/context.rs index 5ff2a6c8f..7cbd2149f 100644 --- a/src/cargo/ops/cargo_rustc/context.rs +++ b/src/cargo/ops/cargo_rustc/context.rs @@ -156,7 +156,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { } })); } - for dep in try!(self.dep_targets(&unit, self.config)) { + for dep in try!(self.dep_targets(&unit)) { try!(self.visit_crate_type(&dep, crate_types)); } Ok(()) @@ -251,8 +251,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { for unit in units { try!(self.walk_used_in_plugin_map(unit, unit.target.for_host(), - &mut visited, - self.config)); + &mut visited)); } Ok(()) } @@ -260,8 +259,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { fn walk_used_in_plugin_map(&mut self, unit: &Unit<'a>, is_plugin: bool, - visited: &mut HashSet<(Unit<'a>, bool)>, - config: &Config) + visited: &mut HashSet<(Unit<'a>, bool)>) -> CargoResult<()> { if !visited.insert((*unit, is_plugin)) { return Ok(()) @@ -269,11 +267,10 @@ impl<'a, 'cfg> Context<'a, 'cfg> { if is_plugin { self.used_in_plugin.insert(*unit); } - for unit in try!(self.dep_targets(unit, config)) { + for unit in try!(self.dep_targets(unit)) { try!(self.walk_used_in_plugin_map(&unit, is_plugin || unit.target.for_host(), - visited, - config)); + visited)); } Ok(()) } @@ -446,11 +443,11 @@ impl<'a, 'cfg> Context<'a, 'cfg> { /// For a package, return all targets which are registered as dependencies /// for that package. - pub fn dep_targets(&self, unit: &Unit<'a>, config: &Config) -> CargoResult>> { + pub fn dep_targets(&self, unit: &Unit<'a>) -> CargoResult>> { if unit.profile.run_custom_build { return self.dep_run_custom_build(unit) } else if unit.profile.doc { - return self.doc_deps(unit, config); + return self.doc_deps(unit); } let id = unit.pkg.package_id(); @@ -493,7 +490,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { true }) }).filter_map(|id| { - match self.get_package(id, config) { + match self.get_package(id) { Ok(pkg) => { pkg.targets().iter().find(|t| t.is_lib()).map(|t| { Ok(Unit { @@ -567,7 +564,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { profile: &self.profiles.dev, ..*unit }; - let deps = try!(self.dep_targets(&tmp, self.config)); + let deps = try!(self.dep_targets(&tmp)); Ok(deps.iter().filter_map(|unit| { if !unit.target.linkable() || unit.pkg.manifest().links().is_none() { return None @@ -581,7 +578,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { } /// Returns the dependencies necessary to document a package - fn doc_deps(&self, unit: &Unit<'a>, config: &Config) -> CargoResult>> { + fn doc_deps(&self, unit: &Unit<'a>) -> CargoResult>> { let deps = self.resolve.deps(unit.pkg.package_id()).filter(|dep| { unit.pkg.dependencies().iter().filter(|d| { d.name() == dep.name() @@ -593,7 +590,7 @@ impl<'a, 'cfg> Context<'a, 'cfg> { } }) }).map(|dep| { - self.get_package(dep, config) + self.get_package(dep) }); // To document a library, we depend on dependencies actually being @@ -676,8 +673,8 @@ impl<'a, 'cfg> Context<'a, 'cfg> { } /// Gets a package for the given package id. - pub fn get_package(&self, id: &PackageId, config: &Config) -> CargoResult<&'a Package> { - self.packages.get(id, config) + pub fn get_package(&self, id: &PackageId) -> CargoResult<&'a Package> { + self.packages.get(id) } /// Get the user-specified linker for a particular host or target diff --git a/src/cargo/ops/cargo_rustc/custom_build.rs b/src/cargo/ops/cargo_rustc/custom_build.rs index c78d067d6..5a15e85a8 100644 --- a/src/cargo/ops/cargo_rustc/custom_build.rs +++ b/src/cargo/ops/cargo_rustc/custom_build.rs @@ -413,7 +413,7 @@ pub fn build_map<'b, 'cfg>(cx: &mut Context<'b, 'cfg>, if !unit.target.is_custom_build() && unit.pkg.has_custom_build() { add_to_link(&mut ret, unit.pkg.package_id(), unit.kind); } - for unit in try!(cx.dep_targets(unit, cx.config)).iter() { + for unit in try!(cx.dep_targets(unit)).iter() { let dep_scripts = try!(build(out, cx, unit)); if unit.target.for_host() { diff --git a/src/cargo/ops/cargo_rustc/fingerprint.rs b/src/cargo/ops/cargo_rustc/fingerprint.rs index a24d7ad2b..702deb5f8 100644 --- a/src/cargo/ops/cargo_rustc/fingerprint.rs +++ b/src/cargo/ops/cargo_rustc/fingerprint.rs @@ -345,7 +345,7 @@ fn calculate<'a, 'cfg>(cx: &mut Context<'a, 'cfg>, unit: &Unit<'a>) // elsewhere. Also skip fingerprints of binaries because they don't actually // induce a recompile, they're just dependencies in the sense that they need // to be built. - let deps = try!(cx.dep_targets(unit, cx.config)); + let deps = try!(cx.dep_targets(unit)); let deps = try!(deps.iter().filter(|u| { !u.target.is_custom_build() && !u.target.is_bin() }).map(|unit| { diff --git a/src/cargo/ops/cargo_rustc/job_queue.rs b/src/cargo/ops/cargo_rustc/job_queue.rs index db359a734..53bad6b78 100644 --- a/src/cargo/ops/cargo_rustc/job_queue.rs +++ b/src/cargo/ops/cargo_rustc/job_queue.rs @@ -323,12 +323,12 @@ impl<'a> Key<'a> { fn dependencies<'cfg>(&self, cx: &Context<'a, 'cfg>) -> CargoResult>> { let unit = Unit { - pkg: try!(cx.get_package(self.pkg, cx.config)), + pkg: try!(cx.get_package(self.pkg)), target: self.target, profile: self.profile, kind: self.kind, }; - let targets = try!(cx.dep_targets(&unit, cx.config)); + let targets = try!(cx.dep_targets(&unit)); Ok(targets.iter().filter_map(|unit| { // Binaries aren't actually needed to *compile* tests, just to run // them, so we don't include this dependency edge in the job graph. diff --git a/src/cargo/ops/cargo_rustc/mod.rs b/src/cargo/ops/cargo_rustc/mod.rs index 660f517ca..280b6c05d 100644 --- a/src/cargo/ops/cargo_rustc/mod.rs +++ b/src/cargo/ops/cargo_rustc/mod.rs @@ -130,7 +130,7 @@ pub fn compile_targets<'a, 'cfg: 'a>(ws: &Workspace<'cfg>, if !unit.target.is_lib() { continue } // Include immediate lib deps as well - for unit in try!(cx.dep_targets(unit, cx.config)).iter() { + for unit in try!(cx.dep_targets(unit)).iter() { let pkgid = unit.pkg.package_id(); if !unit.target.is_lib() { continue } if unit.profile.doc { continue } @@ -197,7 +197,7 @@ fn compile<'a, 'cfg: 'a>(cx: &mut Context<'a, 'cfg>, drop(p); // Be sure to compile all dependencies of this target as well. - for unit in try!(cx.dep_targets(unit, cx.config)).iter() { + for unit in try!(cx.dep_targets(unit)).iter() { try!(compile(cx, jobs, unit)); } Ok(()) @@ -652,7 +652,7 @@ fn build_deps_args(cmd: &mut CommandPrototype, cx: &Context, unit: &Unit) cmd.env("OUT_DIR", &layout.build_out(unit.pkg)); } - for unit in try!(cx.dep_targets(unit, cx.config)).iter() { + for unit in try!(cx.dep_targets(unit)).iter() { if unit.target.linkable() && !unit.profile.doc { try!(link_to(cmd, cx, unit)); } diff --git a/src/cargo/ops/resolve.rs b/src/cargo/ops/resolve.rs index 6b114dd61..af912b0df 100644 --- a/src/cargo/ops/resolve.rs +++ b/src/cargo/ops/resolve.rs @@ -127,7 +127,7 @@ pub fn resolve_with_previous<'a>(registry: &mut PackageRegistry, None => root_replace.to_vec(), }; - let mut resolved = try!(resolver::resolve(&summaries, &replace, registry, ws.config())); + let mut resolved = try!(resolver::resolve(&summaries, &replace, registry)); if let Some(previous) = previous { try!(resolved.merge_from(previous)); } diff --git a/src/cargo/sources/directory.rs b/src/cargo/sources/directory.rs index 650a50924..84a9501a0 100644 --- a/src/cargo/sources/directory.rs +++ b/src/cargo/sources/directory.rs @@ -44,7 +44,7 @@ impl<'cfg> Debug for DirectorySource<'cfg> { } impl<'cfg> Registry for DirectorySource<'cfg> { - fn query(&mut self, dep: &Dependency, _config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { let packages = self.packages.values().map(|p| &p.0); let matches = packages.filter(|pkg| dep.matches(pkg.summary())); let summaries = matches.map(|pkg| pkg.summary().clone()); @@ -98,7 +98,7 @@ impl<'cfg> Source for DirectorySource<'cfg> { Ok(()) } - fn download(&mut self, id: &PackageId, _config: &Config) -> CargoResult { + fn download(&mut self, id: &PackageId) -> CargoResult { self.packages.get(id).map(|p| &p.0).cloned().chain_error(|| { human(format!("failed to find package with id: {}", id)) }) diff --git a/src/cargo/sources/git/source.rs b/src/cargo/sources/git/source.rs index 87e424810..eeffcb05b 100644 --- a/src/cargo/sources/git/source.rs +++ b/src/cargo/sources/git/source.rs @@ -114,10 +114,10 @@ impl<'cfg> Debug for GitSource<'cfg> { } impl<'cfg> Registry for GitSource<'cfg> { - fn query(&mut self, dep: &Dependency, config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { let src = self.path_source.as_mut() .expect("BUG: update() must be called before query()"); - src.query(dep, config) + src.query(dep) } } @@ -175,12 +175,12 @@ impl<'cfg> Source for GitSource<'cfg> { self.path_source.as_mut().unwrap().update() } - fn download(&mut self, id: &PackageId, config: &Config) -> CargoResult { + fn download(&mut self, id: &PackageId) -> CargoResult { trace!("getting packages for package id `{}` from `{:?}`", id, self.remote); self.path_source.as_mut() .expect("BUG: update() must be called before get()") - .download(id, config) + .download(id) } fn fingerprint(&self, _pkg: &Package) -> CargoResult { diff --git a/src/cargo/sources/path.rs b/src/cargo/sources/path.rs index cee7f6cf3..052d01c7d 100644 --- a/src/cargo/sources/path.rs +++ b/src/cargo/sources/path.rs @@ -310,8 +310,8 @@ impl<'cfg> Debug for PathSource<'cfg> { } impl<'cfg> Registry for PathSource<'cfg> { - fn query(&mut self, dep: &Dependency, config: &Config) -> CargoResult> { - self.packages.query(dep, config) + fn query(&mut self, dep: &Dependency) -> CargoResult> { + self.packages.query(dep) } } @@ -326,7 +326,7 @@ impl<'cfg> Source for PathSource<'cfg> { Ok(()) } - fn download(&mut self, id: &PackageId, _config: &Config) -> CargoResult { + fn download(&mut self, id: &PackageId) -> CargoResult { trace!("getting packages; id={}", id); let pkg = self.packages.iter().find(|pkg| pkg.package_id() == id); diff --git a/src/cargo/sources/registry/index.rs b/src/cargo/sources/registry/index.rs index 9d50b4f75..e7bd2b872 100644 --- a/src/cargo/sources/registry/index.rs +++ b/src/cargo/sources/registry/index.rs @@ -35,13 +35,13 @@ impl<'cfg> RegistryIndex<'cfg> { } /// Return the hash listed for a specified PackageId. - pub fn hash(&mut self, pkg: &PackageId, config: &Config) -> CargoResult { + pub fn hash(&mut self, pkg: &PackageId) -> CargoResult { let key = (pkg.name().to_string(), pkg.version().to_string()); if let Some(s) = self.hashes.get(&key) { return Ok(s.clone()) } // Ok, we're missing the key, so parse the index file to load it. - try!(self.summaries(pkg.name(), config)); + try!(self.summaries(pkg.name())); self.hashes.get(&key).chain_error(|| { internal(format!("no hash listed for {}", pkg)) }).map(|s| s.clone()) @@ -51,11 +51,11 @@ impl<'cfg> RegistryIndex<'cfg> { /// /// Returns a list of pairs of (summary, yanked) for the package name /// specified. - pub fn summaries(&mut self, name: &str, config: &Config) -> CargoResult<&Vec<(Summary, bool)>> { + pub fn summaries(&mut self, name: &str) -> CargoResult<&Vec<(Summary, bool)>> { if self.cache.contains_key(name) { return Ok(self.cache.get(name).unwrap()); } - let summaries = try!(self.load_summaries(name, config)); + let summaries = try!(self.load_summaries(name)); let summaries = summaries.into_iter().filter(|summary| { summary.0.package_id().name() == name }).collect(); @@ -63,7 +63,7 @@ impl<'cfg> RegistryIndex<'cfg> { Ok(self.cache.get(name).unwrap()) } - fn load_summaries(&mut self, name: &str, config: &Config) -> CargoResult> { + fn load_summaries(&mut self, name: &str) -> CargoResult> { let (path, _lock) = if self.locked { let lock = self.path.open_ro(Path::new(INDEX_LOCK), self.config, @@ -97,7 +97,7 @@ impl<'cfg> RegistryIndex<'cfg> { try!(f.read_to_string(&mut contents)); let ret: CargoResult>; ret = contents.lines().filter(|l| l.trim().len() > 0) - .map(|l| self.parse_registry_package(l, config)) + .map(|l| self.parse_registry_package(l)) .collect(); ret.chain_error(|| { internal(format!("failed to parse registry's information \ @@ -112,14 +112,14 @@ impl<'cfg> RegistryIndex<'cfg> { /// package. /// /// The returned boolean is whether or not the summary has been yanked. - fn parse_registry_package(&mut self, line: &str, config: &Config) + fn parse_registry_package(&mut self, line: &str) -> CargoResult<(Summary, bool)> { let RegistryPackage { name, vers, cksum, deps, features, yanked } = try!(json::decode::(line)); let pkgid = try!(PackageId::new(&name, &vers, &self.source_id)); let deps: CargoResult> = deps.into_iter().map(|dep| { - self.parse_registry_dependency(dep, config) + self.parse_registry_dependency(dep) }).collect(); let deps = try!(deps); let summary = try!(Summary::new(pkgid, deps, features)); @@ -129,14 +129,15 @@ impl<'cfg> RegistryIndex<'cfg> { } /// Converts an encoded dependency in the registry to a cargo dependency - fn parse_registry_dependency(&self, dep: RegistryDependency, config: &Config) + fn parse_registry_dependency(&self, dep: RegistryDependency) -> CargoResult { let RegistryDependency { name, req, features, optional, default_features, target, kind } = dep; let dep = try!(DependencyInner::parse(&name, Some(&req), - &self.source_id, config)); + &self.source_id, + self.config)); let kind = match kind.as_ref().map(|s| &s[..]).unwrap_or("") { "dev" => Kind::Development, "build" => Kind::Build, @@ -165,9 +166,9 @@ impl<'cfg> RegistryIndex<'cfg> { } impl<'cfg> Registry for RegistryIndex<'cfg> { - fn query(&mut self, dep: &Dependency, config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { let mut summaries = { - let summaries = try!(self.summaries(dep.name(), config)); + let summaries = try!(self.summaries(dep.name())); summaries.iter().filter(|&&(_, yanked)| { dep.source_id().precise().is_some() || !yanked }).map(|s| s.0.clone()).collect::>() @@ -187,7 +188,7 @@ impl<'cfg> Registry for RegistryIndex<'cfg> { _ => true, } }); - summaries.query(dep, config) + summaries.query(dep) } fn supports_checksums(&self) -> bool { diff --git a/src/cargo/sources/registry/mod.rs b/src/cargo/sources/registry/mod.rs index 2b959b163..3a1babafb 100644 --- a/src/cargo/sources/registry/mod.rs +++ b/src/cargo/sources/registry/mod.rs @@ -317,18 +317,18 @@ impl<'cfg> RegistrySource<'cfg> { } impl<'cfg> Registry for RegistrySource<'cfg> { - fn query(&mut self, dep: &Dependency, config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { // If this is a precise dependency, then it came from a lockfile and in // theory the registry is known to contain this version. If, however, we // come back with no summaries, then our registry may need to be // updated, so we fall back to performing a lazy update. if dep.source_id().precise().is_some() && !self.updated { - if try!(self.index.query(dep, config)).is_empty() { + if try!(self.index.query(dep)).is_empty() { try!(self.do_update()); } } - self.index.query(dep, config) + self.index.query(dep) } fn supports_checksums(&self) -> bool { @@ -351,15 +351,15 @@ impl<'cfg> Source for RegistrySource<'cfg> { Ok(()) } - fn download(&mut self, package: &PackageId, config: &Config) -> CargoResult { - let hash = try!(self.index.hash(package, config)); + fn download(&mut self, package: &PackageId) -> CargoResult { + let hash = try!(self.index.hash(package)); let path = try!(self.ops.download(package, &hash)); let path = try!(self.unpack_package(package, &path).chain_error(|| { internal(format!("failed to unpack package `{}`", package)) })); let mut src = PathSource::new(&path, &self.source_id, self.config); try!(src.update()); - src.download(package, config) + src.download(package) } fn fingerprint(&self, pkg: &Package) -> CargoResult { diff --git a/src/cargo/sources/replaced.rs b/src/cargo/sources/replaced.rs index ad94d101c..7fb95bdf6 100644 --- a/src/cargo/sources/replaced.rs +++ b/src/cargo/sources/replaced.rs @@ -1,5 +1,5 @@ use core::{Source, Registry, PackageId, Package, Dependency, Summary, SourceId}; -use util::{CargoResult, ChainError, human, Config}; +use util::{CargoResult, ChainError, human}; pub struct ReplacedSource<'cfg> { to_replace: SourceId, @@ -20,9 +20,9 @@ impl<'cfg> ReplacedSource<'cfg> { } impl<'cfg> Registry for ReplacedSource<'cfg> { - fn query(&mut self, dep: &Dependency, config: &Config) -> CargoResult> { + fn query(&mut self, dep: &Dependency) -> CargoResult> { let dep = dep.clone().map_source(&self.to_replace, &self.replace_with); - let ret = try!(self.inner.query(&dep, config).chain_error(|| { + let ret = try!(self.inner.query(&dep).chain_error(|| { human(format!("failed to query replaced source `{}`", self.to_replace)) })); @@ -40,9 +40,9 @@ impl<'cfg> Source for ReplacedSource<'cfg> { }) } - fn download(&mut self, id: &PackageId, config: &Config) -> CargoResult { + fn download(&mut self, id: &PackageId) -> CargoResult { let id = id.with_source_id(&self.replace_with); - let pkg = try!(self.inner.download(&id, config).chain_error(|| { + let pkg = try!(self.inner.download(&id).chain_error(|| { human(format!("failed to download replaced source `{}`", self.to_replace)) })); diff --git a/tests/resolve.rs b/tests/resolve.rs index 8ed295e91..56ae25c62 100644 --- a/tests/resolve.rs +++ b/tests/resolve.rs @@ -16,13 +16,11 @@ use cargo::core::resolver::{self, Method}; fn resolve(pkg: PackageId, deps: Vec, registry: &mut R) -> CargoResult> { - let config = Config::default().unwrap(); let summary = Summary::new(pkg.clone(), deps, HashMap::new()).unwrap(); let method = Method::Everything; Ok(try!(resolver::resolve(&[(summary, method)], &[], - registry, - &config)).iter().map(|p| { + registry)).iter().map(|p| { p.clone() }).collect()) } -- 2.30.2